/*
 * $Id: Style.java 153 2009-05-19 15:56:35Z meyer@alphatec.de $
 * 
 *
 * Copyright 2009 DeltaDesk
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 * implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package deltadesk.gui.deltagui.style;

import java.awt.Color;
import java.awt.Font;

/**
 * Style.
 * 
 * @author Andreas Meyer
 * @version $Revision: 153 $
 */
public class Style {

	/** The foreground color. */
	private Color foregroundColor;

	/** The background color. */
	private Color backgroundColor;

	/** The border color. */
	private Color borderColor;

	/** The gradient light color. */
	private Color gradientLightColor;

	/** The gradient dark color. */
	private Color gradientDarkColor;

	/** The font of this component. */
	private Font font;
	
	
	/**
	 * Create a default style.
	 * 
	 * @return
	 */
	public static Style createDefault() {
		
		final Style result = new Style();
		
		final ColorBundle colors = new ColorBundle(
				"Default",
				new Color(71, 25, 28),
				new Color(89, 87, 75),
				new Color(130, 150, 144),
				new Color(181, 176, 154),
				new Color(225, 227, 203));
		
		result.setForegroundColor(colors.getColor1());
		result.setBackgroundColor(colors.getColor2());
		result.setBorderColor(Color.BLACK);
		result.setGradientDarkColor(colors.getColor4());
		result.setGradientLightColor(colors.getColor5());

		result.setFont(new Font("Verdana", Font.PLAIN, 12));
		
		return result;
	}

	/**
	 * @return the foregroundColor
	 */
	public Color getForegroundColor() {
		return foregroundColor;
	}

	/**
	 * @param foregroundColor the foregroundColor to set
	 */
	void setForegroundColor(final Color foregroundColor) {
		this.foregroundColor = foregroundColor;
	}

	/**
	 * @return the backgroundColor
	 */
	public final Color getBackgroundColor() {
		return backgroundColor;
	}

	/**
	 * @param backgroundColor the backgroundColor to set
	 */
	final void setBackgroundColor(final Color backgroundColor) {
		this.backgroundColor = backgroundColor;
	}

	/**
	 * @return the borderColor
	 */
	public Color getBorderColor() {
		return borderColor;
	}

	/**
	 * @param borderColor the borderColor to set
	 */
	void setBorderColor(final Color borderColor) {
		this.borderColor = borderColor;
	}

	/**
	 * @return the gradientLightColor
	 */
	public Color getGradientLightColor() {
		return gradientLightColor;
	}

	/**
	 * @param gradientLightColor the gradientLightColor to set
	 */
	void setGradientLightColor(final Color gradientLightColor) {
		this.gradientLightColor = gradientLightColor;
	}

	/**
	 * @return the gradientDarkColor
	 */
	public Color getGradientDarkColor() {
		return gradientDarkColor;
	}

	/**
	 * @param gradientDarkColor the gradientDarkColor to set
	 */
	void setGradientDarkColor(final Color gradientDarkColor) {
		this.gradientDarkColor = gradientDarkColor;
	}

	/**
	 * @return the font
	 */
	public final Font getFont() {
		return font;
	}

	/**
	 * @param font the font to set
	 */
	final void setFont(final Font font) {
		this.font = font;
	}

}
